home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / The World of Computer Software.iso / faq-s.zip / PIBASYNC.PAS < prev    next >
Pascal/Delphi Source File  |  1990-12-16  |  4KB  |  106 lines

  1. UNIT PibAsync;
  2.  
  3. INTERFACE
  4.                                    (* Uncomment PibMTask if the    *)
  5.                                    (* multitasking interface is to *)
  6.                                    (* be used.                     *)
  7. USES
  8.    Dos, Crt, GlobType, PibTimer{, PibMTask};
  9.  
  10. (*$I PIBASYNC.GLO *)
  11.  
  12. PROCEDURE BIOS_RS232_Init( ComPort : INTEGER; ComParm : WORD );
  13. PROCEDURE Async_Close( Drop_DTR: BOOLEAN );
  14. PROCEDURE Async_Clear_Errors;
  15. PROCEDURE Async_Reset_Port( ComPort       : INTEGER;
  16.                             BaudRate      : WORD;
  17.                             Parity        : CHAR;
  18.                             WordSize      : INTEGER;
  19.                             StopBits      : INTEGER  );
  20. FUNCTION  Async_Open( ComPort       : INTEGER;
  21.                       BaudRate      : WORD;
  22.                       Parity        : CHAR;
  23.                       WordSize      : INTEGER;
  24.                       StopBits      : INTEGER  ) : BOOLEAN;
  25. PROCEDURE Async_Send( C : Char );
  26. FUNCTION Async_Receive( VAR C : Char ) : BOOLEAN;
  27. PROCEDURE Async_Receive_With_Timeout( Secs : INTEGER; VAR C : INTEGER );
  28. PROCEDURE Async_Stuff( Ch: CHAR );
  29. PROCEDURE Async_Find_Delay( VAR One_MS_Delay : INTEGER );
  30. PROCEDURE Async_Init( Async_Buffer_Max  : INTEGER;
  31.                       Async_OBuffer_Max : INTEGER;
  32.                       Async_High_Lev1   : INTEGER;
  33.                       Async_High_Lev2   : INTEGER;
  34.                       Async_Low_Lev     : INTEGER );
  35. FUNCTION  Async_Carrier_Detect : BOOLEAN;
  36. FUNCTION  Async_Carrier_Drop : BOOLEAN;
  37. PROCEDURE Async_Term_Ready( Ready_Status : BOOLEAN );
  38. FUNCTION  Async_Buffer_Check : BOOLEAN;
  39. FUNCTION  Async_Line_Error( VAR Error_Flags: BYTE ) : BOOLEAN;
  40. FUNCTION  Async_Ring_Detect : BOOLEAN;
  41. PROCEDURE Async_Send_Break;
  42. PROCEDURE Async_Send_String( S : AnyStr );
  43. PROCEDURE Async_Send_String_With_Delays( S          : AnyStr;
  44.                                          Char_Delay : INTEGER;
  45.                                          EOS_Delay  : INTEGER  );
  46. FUNCTION  Async_Percentage_Used : REAL;
  47. PROCEDURE Async_Purge_Buffer;
  48. FUNCTION  Async_Peek( Nchars : INTEGER ) : CHAR;
  49. PROCEDURE Async_Setup_Port( ComPort       : INTEGER;
  50.                             Base_Address  : INTEGER;
  51.                             IRQ_Line      : INTEGER;
  52.                             Int_Numb      : INTEGER );
  53. PROCEDURE Async_Release_Buffers;
  54. PROCEDURE Async_Flush_Output_Buffer;
  55. PROCEDURE Async_Drain_Output_Buffer( Max_Wait_Time : INTEGER );
  56. FUNCTION  Async_Port_Address_Given( Com_Port : INTEGER ) : BOOLEAN;
  57. PROCEDURE Async_Send_Now( C : Char );
  58. FUNCTION  Async_Wait_For_Quiet( Max_Wait : LONGINT;
  59.                                 Wait_Time: LONGINT  ) : BOOLEAN;
  60. PROCEDURE Async_Set_Rejection( Reject_Bad : BOOLEAN; Reject_Char : CHAR );
  61.  
  62. IMPLEMENTATION
  63.                                    (* Remove blank before $ in next *)
  64.                                    (* statement to get multitasking *)
  65.                                    (* defined.                      *)
  66. { $DEFINE MTASK }
  67.  
  68. (*$I PIBASYN1.MOD *)
  69. (*$I PIBASYN2.MOD *)
  70. (*$I PIBASYN3.MOD *)
  71.  
  72. BEGIN (* PibAsync *)
  73.                                    (* Default communications parameters *)
  74.    Async_Do_CTS         := FALSE;
  75.    Async_Do_DSR         := FALSE;
  76.    Async_Hard_Wired_On  := FALSE;
  77.    Async_Break_Length   := 500;
  78.    Async_Do_XonXoff     := TRUE;
  79.    Async_OV_XonXoff     := TRUE;
  80.    Async_Buffer_Length  := 4096;
  81.    Async_OBuffer_Length := 1132;
  82.    Async_Reject_Noise   := FALSE;
  83.    Async_Noise_Char     := CHR( 0 );
  84.  
  85.                                    (* Port addresses of each com port *)
  86.  
  87.    Default_Com_Base[1]  := COM1_Base;
  88.    Default_Com_Base[2]  := COM2_Base;
  89.    Default_Com_Base[3]  := COM3_Base;
  90.    Default_Com_Base[4]  := COM4_Base;
  91.  
  92.                                    (* IRQ line for each port *)
  93.  
  94.    Default_Com_Irq [1]  := COM1_Irq;
  95.    Default_Com_Irq [2]  := COM2_Irq;
  96.    Default_Com_Irq [3]  := COM3_Irq;
  97.    Default_Com_Irq [4]  := COM4_Irq;
  98.  
  99.                                    (* Pick up address of send-a-character *)
  100.                                    (* routine, which is used by INLINE    *)
  101.                                    (* code.                               *)
  102.  
  103.    Async_Send_Addr := ADDR( Async_Send );
  104.  
  105. END   (* PibAsync *).
  106.